Apache Flink Cluster সেটআপ এবং মনিটরিং করার জন্য আপনাকে কিছু ধাপ অনুসরণ করতে হবে। Flink Cluster সাধারণত Standalone Cluster, YARN, বা Kubernetes এর উপর সেটআপ করা যায়। এখানে আমি একটি Standalone Flink Cluster সেটআপ এবং মনিটরিং এর বিস্তারিত প্রক্রিয়া আলোচনা করবো।

Flink Cluster সেটআপ

1. প্রয়োজনীয়তা:

  • Java: Flink চলার জন্য Java (JDK 8 বা তার উপরে) ইনস্টল থাকতে হবে।
  • Flink Distribution: Flink-এর স্টেবল রিলিজটি Flink Downloads Page থেকে ডাউনলোড করুন।
  • Hadoop (ঐচ্ছিক): যদি HDFS বা YARN ব্যবহার করতে চান, তাহলে Hadoop ইনস্টল করা প্রয়োজন।

2. Flink ডাউনলোড এবং ইনস্টলেশন:

wget https://archive.apache.org/dist/flink/flink-1.15.0-bin-scala_2.12.tgz
tar -xzf flink-1.15.0-bin-scala_2.12.tgz
cd flink-1.15.0

3. Cluster কনফিগারেশন (flink-conf.yaml):

conf/flink-conf.yaml ফাইলটি কনফিগার করুন। নিচের সেটিংসগুলো পরিবর্তন বা যোগ করতে হবে:

jobmanager.rpc.address: localhost   # JobManager এর হোস্টনেম বা আইপি অ্যাড্রেস
taskmanager.numberOfTaskSlots: 4    # প্রতিটি TaskManager এর জন্য স্লট সংখ্যা
parallelism.default: 4              # ডিফল্ট প্যারালেলিজম

4. JobManager এবং TaskManager চালু করা:

JobManager এবং TaskManager আলাদাভাবে চালু করতে হবে।

JobManager চালু করতে:

./bin/start-cluster.sh

TaskManager চালু করতে:

./bin/taskmanager.sh start

Cluster চালু হওয়ার পরে, ব্রাউজার থেকে Flink এর Web Dashboard অ্যাক্সেস করতে পারবেন:

http://localhost:8081

Flink Monitoring সেটআপ

Flink Cluster মনিটরিং করার জন্য Flink-এর বিল্ট-ইন Web Dashboard এবং অন্যান্য External Monitoring Tools ব্যবহার করা যায়, যেমন:

  • Prometheus & Grafana: Flink Cluster থেকে মেট্রিক সংগ্রহ করে কাস্টম ড্যাশবোর্ড তৈরি করতে Prometheus এবং Grafana ব্যবহৃত হয়।
  • ELK Stack (Elasticsearch, Logstash, and Kibana): Flink লগ সংগ্রহ এবং বিশ্লেষণ করতে ELK স্ট্যাক ব্যবহার করা যায়।

1. Flink Web Dashboard ব্যবহার

  • ডিফল্টভাবে, Flink এর Web Dashboard (http://localhost:8081) Cluster এর বিভিন্ন স্ট্যাটাস এবং মেট্রিক দেখায়:
    • Overview: Cluster এর সার্বিক পরিস্থিতি (JobManager, TaskManager, slots, ইত্যাদি)।
    • Jobs: চলমান বা সম্পন্ন হওয়া জবগুলোর তথ্য।
    • Taskmanagers: TaskManager গুলোর স্বাস্থ্য, স্লট সংখ্যা এবং মেমোরি ব্যবহার।

2. Prometheus এবং Grafana দিয়ে Monitoring

Step 1: Flink কনফিগারেশন Prometheus-এর জন্য প্রস্তুত করা:

  • flink-conf.yaml এ নিচের লাইনগুলি যোগ করুন:
metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
metrics.reporter.prom.port: 9250
  • এই কনফিগারেশনটি Flink কে Prometheus মেট্রিক্স পাঠাতে সক্ষম করবে।

Step 2: Prometheus সেটআপ করা:

  • Prometheus এর কনফিগারেশন ফাইলে (prometheus.yml) Flink এর মেট্রিক্স এন্ডপয়েন্ট যুক্ত করুন:
scrape_configs:
  - job_name: 'flink'
    static_configs:
      - targets: ['localhost:9250']
  • Prometheus সার্ভার চালু করুন:
./prometheus --config.file=prometheus.yml

Step 3: Grafana সেটআপ করা:

  • Grafana ড্যাশবোর্ড তৈরি করুন এবং Prometheus সার্ভারটিকে Data Source হিসেবে যোগ করুন।
  • Flink এর জন্য প্রি-বিল্ট ড্যাশবোর্ড ব্যবহার করতে পারেন যা Grafana Dashboard Gallery-তে পাওয়া যায়।

উদাহরণপ্রজেক্ট: Flink Cluster ও Monitoring

এখানে একটি উদাহরণ প্রজেক্টের কাঠামো দেখানো হলো, যেখানে Flink Cluster ডিপ্লয় করা হবে এবং Prometheus ও Grafana ব্যবহার করে মনিটরিং করা হবে:

প্রয়োজনীয় টুলস:

  • Flink Standalone Cluster
  • Prometheus
  • Grafana

প্রজেক্ট ফোল্ডার কাঠামো:

flink-monitoring-project/
├── flink-1.15.0/
├── prometheus/
│   ├── prometheus.yml
├── grafana/
│   ├── docker-compose.yml
├── flink-jobs/
│   ├── MyFlinkJob.jar
├── logs/

Docker ব্যবহার করে Prometheus ও Grafana চালু করা:

  • grafana/docker-compose.yml ফাইলটি:
  • কমান্ড চালান:
docker-compose -f grafana/docker-compose.yml up -d
version: '3'
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

Flink Job ডিপ্লয় করা:

  • Flink Web Dashboard-এ গিয়ে JAR ফাইল আপলোড করুন এবং জব শুরু করুন।

এই প্রজেক্টে Flink Cluster এবং Monitoring সেটআপ করা হয়েছে যাতে Cluster-এর পারফরম্যান্স ও কার্যক্রম সঠিকভাবে পর্যবেক্ষণ করা যায়। Flink এর Cluster Management এবং Monitoring কনফিগার করে আপনি স্কেলেবল এবং রিলায়েবল স্ট্রিম প্রসেসিং অ্যাপ্লিকেশন ডিপ্লয় করতে পারবেন।

আরও দেখুন...

Promotion